package P094_cannotInitGenericParamsAndArray;

import org.junit.Test;

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;

/**
 * Desc:&emsp;&ensp;不能初始化泛型参数和数组
 *
 *
 * @author 李渊&emsp;liyuan7@yusys.com.cn
 * @version 1.0
 * 
 */
public class Foo<T> {
    // ===== part1 ====
//    private T t = new T();
//    private T[] tArr = new T[];
    // List中的elementData是Object[],Object[]允许协变，add时T转为Object，取出时Object转为T
    private List<T> tList = new ArrayList<T>();

    // ===== part2 ====
    // 确实要用泛型数组时这样使用
    class f<T>{
        private T t;
        private T[] tArr;
        public f(){
            try{
                Class<?> tType = Class.forName("");
                t = (T)tType.newInstance();
                tArr = (T[]) Array.newInstance(tType,5);
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    }
}
